local mri = require("utils/memoryReferenceInfo")
--mri.m_cConfig.m_bAllMemoryRefFileAddTime = false

MEMORY_D = {}

---! 生成全局内存快照
-- extraFileName 添加额外的信息到文件名
function MEMORY_D:memorySnapshotDump(extraFileName)
    extraFileName = extraFileName or "memory"
    collectgarbage("collect")
    mri.m_cMethods.DumpMemorySnapshot("./", extraFileName , -1)
end

---! 对比两个快照文件
-- strResultFilePathBefore 第一个内存快照文件。
-- strResultFilePathAfter 第二个用于比较的内存快照文件。
function MEMORY_D:comparedFile(strResultFilePathBefore, strResultFilePathAfter)
    mri.m_cMethods.DumpMemorySnapshotComparedFile("./", "Compared", -1, strResultFilePathBefore, strResultFilePathAfter)
end

---! 从快照中过滤内容
-- 按照关键字过滤一个内存快照文件然后输出到另一个文件.
-- strFilePath - 需要被过滤输出的内存快照文件。
-- strFilter - 过滤关键字
-- bIncludeFilter - 包含关键字(true)还是排除关键字(false)来输出内容。
-- bOutputFile - 输出到文件(true)还是 console 控制台(false)。
function MEMORY_D:FilteredResult(filename, strFilter, bIncludeFilter, bOutputFile)
    mri.m_cBases.OutputFilteredResult(filename, strFilter, bIncludeFilter, bOutputFile)
end

